Microcomputers are being designed and fabricated as single large scale integrated (LSI) circuit chips including an arithmetic logic unit, a system controller, registers, program and data memories, and timing circuits. Typically, such microcomputers use metal oxide semiconductor/large scale integration (MOS/LSI) technology. Other technologies can be and are used. The length of code words used during the processing of data in such microcomputers is determined by the number of leads included in an internal data bus. At present, single chip microcomputers are being fabricated with 4-bit (4-lead) parallel data buses.
Data processing sequences typically are controlled by the system controller operating in response to an operation code (opcode) which is stored in an instruction register during the execution of each instruction fetched from the program memory. An instruction is the smallest operating step that a programmer can invoke. It is a statement that specifies an operation and the values of or the locations of its operands. The opcode applied to the controller causes the microcomputer to step through a sequence of states during which appropriate machine functions occur to accomplish whatever specific task, or operation, is desired by a programmer invoking the instruction.
The instruction set is limited in the number of possible operations by the length of the opcode words stored in the instruction register. For instruction registers having N stages, up to 2.sup.N basic opcodes can be provided. In a prior art single chip microcomputer having a 4-bit parallel data bus, an 8-bit instruction register is provided so that as many as 2.sup.8 basic opcodes can be provided. See, for instance, INTEL Data Catalog 1977, pp. 8-4 to 8-9, and 8-15 to 8-20, and TMS 1000 Series Data Manual 1976, Texas Instruments, Inc., page 6.
In processing each instruction, such a microcomputer fetches two consecutive nibbles of opcode from memory and loads them into two halves of the instruction register before proceeding with the processing of any data. The entire 8-bit opcode is used for controlling the sequence of operations during the instruction. When it is desirable to operate a microcomputer faster, fetching two nibbles of opcode for each instruction may present a problem because each fetch of a nibble of opcode occupies some portion of the total operating time available to the processor.
One way to shorten the processing time is by reducing the number of nibbles included in instructions, such as by reducing the number of nibbles in some opcodes. As previously mentioned, such a reduction of the number of nibbles stored in the instruction register may unduly reduce the basic instruction set together with the number of different operation sequences available and thereby also reduce the processing power of the microcomputer.
Thus, there exists a dilemma in that a large number of bits are desired in opcodes for increasing the processing power of the microcomputer, and a small number of bits are desired in opcodes for reducing the time required to process instructions.